#include <wx/statbox.h>
#include "wxsstaticbox.h"

namespace {
  wxsRegisterItem<wxsStaticBox> Reg( _T( "StaticBox" ), _T( "分组框" ), wxsTWidget, _T( "标准" ), 70 );
  WXS_ST_BEGIN( wxsStaticBoxStyles, _T( "" ) )
  WXS_ST_CATEGORY( "wxStaticBox" )
  WXS_ST_DEFAULTS()
  WXS_ST_END()
  WXS_EV_BEGIN( wxsStaticBoxEvents )
  WXS_EV_END()
}

wxsStaticBox::wxsStaticBox( wxsItemResData* Data ):
  wxsWidget( Data, &Reg.Info, wxsStaticBoxEvents, wxsStaticBoxStyles ), Label( _T( "Label" ) ) {}

void wxsStaticBox::OnBuildCreatingCode() {
  switch( GetLanguage() ) {
    case wxsCPP: {
      AddHeader( _T( "<wx/statbox.h>" ), GetInfo().ClassName, hfInPCH );
      Codef( _T( "%C(%W, %I, %t, %P, %S, %T, %N);\n" ), Label.wx_str() );
      BuildSetupWindowCode();
      return;
    }
    case wxsUnknownLanguage:
    default: {
      wxsCodeMarks::Unknown( _T( "wxsStaticBox::OnBuildCreatingCode" ), GetLanguage() );
    }
  }
}

wxObject* wxsStaticBox::OnBuildPreview( wxWindow* Parent, long Flags ) {
  wxStaticBox* Preview = new wxStaticBox( Parent, GetId(), Label, Pos( Parent ), Size( Parent ), Style() );
  return SetupWindow( Preview, Flags );
}

void wxsStaticBox::OnEnumWidgetProperties( M_Code_unused long Flags ) {
  WXS_SHORT_STRING( wxsStaticBox, Label, _T( "Label" ), _T( "label" ), _T( "" ), false )
}
